#include "aspect.h"
class Aspect 
{
public:
	void say(int &a1,int &a2,int &a3,int &a4,int &a5,int &a6,int &a7,int &a8,int &a9,int &a10,int &a11,int &a12)
	{
		a1 = a2 = a3 = a12 = 100;
		printf("%d %d\n",a1,a2);
	}
	void say1()
	{
		 printf("say1\n");
	}
};

int main()
{
	int a1 = 0;
	int a2 = 0;
	int a3 = 0;
	int a4 = 0;
	int a5 = 0;
	int a6 = 0;
	int a7 = 0;
	int a8 = 0;	
	int a9 = 0;
	int a10 = 0;
	int a11 = 0;
	int a12 = 0;	
	do {
		aspect::message<void,int,int,int,int,int,int,int,int,int,int,int,int> msg;
		msg.build(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12);
		Aspect o;
		msg.bind(&Aspect::say,&o);
		msg.call();
	} while (0);
	do {
		aspect::message<void> msg;
		msg.build();
		Aspect o;
		msg.bind(&Aspect::say1,&o);
		msg.call();
	} while (0);
	return 0;
}
